<?php
/**
 * MQTT协议配置文件
 * 支持多个厂商的MQTT协议
 */

return [
    /**
     * 默认协议
     * 可选值: vendor1, vendor2, mqttx
     */
    'default_vendor' => 'vendor1',

    /**
     * 已启用的厂商列表
     */
    'enabled_vendors' => ['vendor1', 'vendor2'],

    /**
     * 厂商配置
     */
    'vendors' => [
        /**
         * Vendor1 - 现有厂商协议
         * 主题格式: tc/device/in/{MAC}, tc/device/out/{MAC}
         */
        'vendor1' => [
            'name' => '现有厂商',
            'description' => '原有的MQTT协议实现',
            'enabled' => true,
            'class' => 'app\service\Protocol\Vendor1Protocol',
            'parser_class' => 'app\service\MessageParser\Vendor1MessageParser',
            'config' => [
                'downlink_topic_prefix' => 'tc/device/in',
                'uplink_topic_prefix' => 'tc/device/out',
            ]
        ],

        /**
         * Vendor2 - MQTTX协议
         * 主题格式: 动态获取（从HTTP API）
         */
        'vendor2' => [
            'name' => 'MQTTX',
            'description' => '新的MQTTX MQTT协议实现',
            'enabled' => true,
            'class' => 'app\service\Protocol\Vendor2Protocol',
            'parser_class' => 'app\service\MessageParser\Vendor2MessageParser',
            'config' => [
                'api_url' => 'https://zmp-test.nbm2m.com/api/device/post/uploadData/getReportConfig',
                'api_url_prod' => 'https://up.aiotzy.com/api/device/post/uploadData/getReportConfig',
                'cache_expire' => 3600, // 配置缓存时间（秒）
            ]
        ],

        /**
         * MQTTX别名
         * 指向Vendor2
         */
        'mqttx' => [
            'name' => 'MQTTX (Alias)',
            'description' => 'MQTTX协议的别名',
            'enabled' => true,
            'class' => 'app\service\Protocol\Vendor2Protocol',
            'parser_class' => 'app\service\MessageParser\Vendor2MessageParser',
            'config' => []
        ],
    ],

    /**
     * 指令类型映射
     * 不同厂商支持的指令类型
     */
    'command_types' => [
        'vendor1' => [
            1 => '修改热点',
            2 => '切换网络',
            3 => '重启设备',
            4 => '网络限速',
            5 => '恢复出厂设置',
            6 => '热点显隐',
        ],
        'vendor2' => [
            1 => '修改WiFi信息（2.4G）',
            2 => '切换SIM卡',
            3 => '设备重启',
            4 => '网络限速',
            5 => '恢复出厂设置（不支持）',
            6 => '修改WiFi显隐',
            7 => '修改WiFi信息（5G）',
            8 => '上报间隔设置',
            9 => '固件下载',
        ],
    ],

    /**
     * 消息解析器配置
     */
    'message_parser' => [
        /**
         * 自动检测模式
         * true: 自动检测并选择合适的解析器
         * false: 需要手动指定解析器
         */
        'auto_detect' => true,

        /**
         * 解析器优先级
         * 在自动检测时，按照此顺序尝试各个解析器
         */
        'priority' => ['vendor1', 'vendor2'],
    ],

    /**
     * 数据库配置
     */
    'database' => [
        /**
         * 使用的数据库连接
         * null: 使用默认数据库
         * 'db_config2': 使用第二个数据库
         */
        'connection' => null,

        /**
         * 数据表名称
         */
        'table' => 'flow_wifi_imei',

        /**
         * 批处理大小
         */
        'batch_size' => 100,

        /**
         * 最大缓冲时间（秒）
         */
        'max_buffer_time' => 5,
    ],
];

